package cn.edu.gzgs.service;

import cn.edu.gzgs.dto.AuditContentDTO;
import cn.edu.gzgs.dto.AuditPageQueryDTO;
import cn.edu.gzgs.dto.AuditRecordDTO;
import cn.edu.gzgs.entity.AuditContent;
import cn.edu.gzgs.vo.AuditContentVO;
import cn.edu.gzgs.vo.WebOfficeVO;
import com.baomidou.mybatisplus.extension.plugins.pagination.PageDTO;
import com.baomidou.mybatisplus.extension.service.IService;


public interface AuditService extends IService<AuditContent> {
    /**
     * 添加审核内容
     */
    void auditWithsupportingMLAdd(AuditContentDTO auditContentDTO);

    /**
     * 修改审核内容
     */
    void update(AuditContentDTO auditContentDTO);

    /**
     * 审核工作量内容
     */
    void audit(AuditRecordDTO auditRecordDTO);

    /**
     * 获取佐证材料的签名URL，用于在线查看
     * 
     * @param supportingMaterialId 佐证材料ID
     * @param expireInSeconds URL有效期，单位秒
     * @return 签名URL
     */
    WebOfficeVO getSupportingMaterialSignedUrl(Long supportingMaterialId, long expireInSeconds) throws Exception;
    
    /**
     * 下载佐证材料
     * 
     * @param supportingMaterialId 佐证材料ID
     * @return 文件下载URL
     */
    String downloadSupportingMaterial(Long supportingMaterialId) throws Exception;

    /**
     * 驳回审核
     */
    void dismissAudit(Long id);

    /**
     * 动态查询审核内容
     */
    PageDTO<AuditContentDTO> dynamicQueries(AuditPageQueryDTO auditPageQueryDTO);

    /**
     * 撤销审核
     */
    void revokeAudit(Long id);
}
